From: Giovanni Campagna Date: Tue, 30 Oct 2012 17:55:31 +0000 (+0100) Subject: Telepathy: consolidate and improve connection notifications X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5371 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=6092e014280ce1edf94520bbda842753b3985482;p=gnome-shell.git Telepathy: consolidate and improve connection notifications Use the empathy icon and name instead of the error icon, use a friendlier title and remove the Reconnect button. https://bugzilla.gnome.org/show_bug.cgi?id=687213 --- diff --git a/js/ui/components/telepathyClient.js b/js/ui/components/telepathyClient.js index 281a6066e..b41aa5f9f 100644 --- a/js/ui/components/telepathyClient.js +++ b/js/ui/components/telepathyClient.js @@ -383,25 +383,12 @@ const TelepathyClient = new Lang.Class({ } /* Display notification to ask user to accept/reject request */ - let source = this._ensureSubscriptionSource(); + let source = this._ensureAppSource(); let notif = new SubscriptionRequestNotification(source, contact); source.notify(notif); }, - _ensureSubscriptionSource: function() { - if (this._subscriptionSource == null) { - this._subscriptionSource = new MessageTray.Source(_("Subscription request"), - 'gtk-dialog-question'); - Main.messageTray.add(this._subscriptionSource); - this._subscriptionSource.connect('destroy', Lang.bind(this, function () { - this._subscriptionSource = null; - })); - } - - return this._subscriptionSource; - }, - _accountConnectionStatusNotifyCb: function(account) { let connectionError = account.connection_error; @@ -415,7 +402,7 @@ const TelepathyClient = new Lang.Class({ return; /* Display notification that account failed to connect */ - let source = this._ensureAccountSource(); + let source = this._ensureAppSource(); notif = new AccountNotification(source, account, connectionError); this._accountNotifications[account.get_object_path()] = notif; @@ -425,17 +412,16 @@ const TelepathyClient = new Lang.Class({ source.notify(notif); }, - _ensureAccountSource: function() { - if (this._accountSource == null) { - this._accountSource = new MessageTray.Source(_("Connection error"), - 'gtk-dialog-error'); - Main.messageTray.add(this._accountSource); - this._accountSource.connect('destroy', Lang.bind(this, function () { - this._accountSource = null; + _ensureAppSource: function() { + if (this._appSource == null) { + this._appSource = new MessageTray.Source(_("Chat"), 'empathy'); + Main.messageTray.add(this._appSource); + this._appSource.connect('destroy', Lang.bind(this, function () { + this._appSource = null; })); } - return this._accountSource; + return this._appSource; } }); @@ -1353,26 +1339,16 @@ const AccountNotification = new Lang.Class({ this.parent(source, /* translators: argument is the account name, like * name@jabber.org for example. */ - _("Connection to %s failed").format(account.get_display_name()), - null, { customContent: true }); - - this._label = new St.Label(); - this.addActor(this._label); - this._updateMessage(connectionError); + _("Unable to connect to %s").format(account.get_display_name()), + this._getMessage(connectionError)); this._account = account; - this.addButton('reconnect', _("Reconnect")); - this.addButton('edit', _("Edit account")); + this.addButton('view', _("View account")); this.connect('action-invoked', Lang.bind(this, function(self, action) { switch (action) { - case 'reconnect': - // If it fails again, a new notification should pop up with the - // new error. - account.reconnect_async(null); - break; - case 'edit': + case 'view': let cmd = '/usr/bin/empathy-accounts' + ' --select-account=%s' .format(account.get_path_suffix()); @@ -1398,19 +1374,19 @@ const AccountNotification = new Lang.Class({ if (status == Tp.ConnectionStatus.CONNECTED) { this.destroy(); } else if (status == Tp.ConnectionStatus.DISCONNECTED) { - this._updateMessage(account.connection_error); + this.update(this.title, this._getMessage(account.connection_error)); } })); }, - _updateMessage: function(connectionError) { + _getMessage: function(connectionError) { let message; if (connectionError in _connectionErrorMessages) { message = _connectionErrorMessages[connectionError]; } else { message = _("Unknown reason"); } - this._label.set_text(message); + return message; }, destroy: function() {